package sixteen;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * try(){
 * }
 * 这种语法格式在try块退出时，会自动调用res.close()方法，关闭资源，就不用向finallyDemo2中finally再写try catch了
 */

public class AutoCloseableDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");
        try (
                //自动关闭特性是编译器认可的，代码编译后会变为FinallyDemo2的样子
                //在try()中定义的内容最终会被编译器修改为finally中调用close()关闭操作
                FileOutputStream fos = new FileOutputStream("fos.dat");
                //只有实现了AutoCloseable接口的类才能在此处定义
                //String str = "abc"; //编译错误
        ) {
            fos.write(1);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("程序结束了");
    }
}